package paqv_vista;

import java.sql.SQLException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;
import paq_calculo.fun_calculo;
import paq_clase_interfaz.interfaz_coordinador;
import paq_clase_interfaz.interfaz_paralelo;
import paq_clase_interfaz.interfaz_programa_postgrado;
import paq_clase_interfaz.interfaz_promocion;
import paq_entidades.entiv_promocion;
import paq_entidades.entiv_variables;

@ManagedBean()
@SessionScoped
public class Vista_promocion extends Vista_campostxt {

    @EJB
    private interfaz_promocion eliminar;
    @EJB
    private interfaz_promocion insertar;
    @EJB
    private interfaz_promocion actualizar;
    @EJB
    private interfaz_promocion lista;
    @EJB
    private interfaz_programa_postgrado comboprograma;
    @EJB
    private interfaz_paralelo comboparalelo;
    @EJB
    private interfaz_coordinador combocoordinador;
    entiv_promocion entidad = new entiv_promocion();
    entiv_variables v = new entiv_variables();
    fun_calculo fu = new fun_calculo();

    public void insertar() {
        if ("".equals(txtcodigo_programa) || "".equals(txtcedula) || "".equals(txtcodigoparalelo) || "".equals(txtnombres)) {
            mensaje = "Se requieren datos";
        } else {
            insertar.insertar(txtcodigo_programa, txtcedula, txtcodigoparalelo, fu.formato_fecha(txtfechainicio), fu.formato_fecha(txtfechafin), txtnombres, txtestudiantes);
            mensaje = "ok";
            limpiar();
        }
    }

    public void eliminar() {
        entidad = (entiv_promocion) tabla.getRowData();
        this.txtcodigo = entidad.getProm_codigo();
        eliminar.eliminar(txtcodigo);
        mensaje = "ok";
        limpiar();
    }

    public void modificar() {
        actualizar.actualizar(txtcodigo, txtcodigo_programa, txtcedula, txtcodigoparalelo, fu.formato_fecha(txtfechainicio), fu.formato_fecha(txtfechafin), txtnombres, txtestudiantes);
        limpiar();
    }

    public ArrayList<entiv_promocion> getLista2() {

        ArrayList listae = new ArrayList();
        v.crs = lista.getLista();
        try {
            entiv_promocion objart;
            while (v.crs.next()) {
                objart = new entiv_promocion();
                objart.setProm_codigo(v.crs.getString("prom_codigo"));
                objart.setPp_codigo(v.crs.getString("pp_codigo"));
                objart.setPr_cedula(v.crs.getString("pr_cedula"));
                objart.setPl_codigo(v.crs.getString("pl_codigo"));
                objart.setProm_fechainicio(v.crs.getDate("prom_fechainicio"));
                objart.setPro_fechafin(v.crs.getDate("pro_fechafin"));
                objart.setPro_nombre(v.crs.getString("pro_nombre"));
                objart.setNumestudiantes(v.crs.getInt("pro_numero_estudiantes"));
                listae.add(objart);
            }
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null,
                    e.getMessage());
        }

        return listae;

    }

    public void seleccionLista() throws ParseException {
        entidad = (entiv_promocion) tabla.getRowData();
        this.txtcodigo = entidad.getProm_codigo();
        this.txtcodigo_programa = entidad.getPp_codigo();
        this.txtcedula = entidad.getPr_cedula();
        this.txtcodigoparalelo = entidad.getPl_codigo();
        this.txtfechainicio = entidad.getProm_fechainicio();
           this.txtfechafin = entidad.getPro_fechafin();
        this.txtnombres = entidad.getPro_nombre();
        this.txtestudiantes = entidad.getNumestudiantes();

    }

    public void limpiar() {
        txtcodigo = "";
        txtcodigo_programa = "";
        txtcedula = "";
        txtcodigoparalelo="";
        txtfechainicio=null;
        txtfechafin=null;
        txtnombres="";
        txtestudiantes=null;
        
    }

    public List getListaprograma() {
        v.listaprograma2.clear();
        try {
            v.crs2 = comboprograma.getcomboprograma();
            while (v.crs2.next()) {
                v.listaprograma2.add(new SelectItem(v.crs2.getString("pp_codigo"), v.crs2.getString("pp_nombre")));
            }
            v.crs2.close();
        } catch (SQLException ex) {
        }
        return v.listaprograma2;
    }
    public List getListaparalelo() {
        v.listaparalelo.clear();
        try {
            v.crs3 = comboparalelo.getListacomboparalelo();
            while (v.crs3.next()) {
                v.listaparalelo.add(new SelectItem(v.crs3.getString("pl_codigo"), v.crs3.getString("pl_nombre")));
            }
            v.crs3.close();
        } catch (SQLException ex) {
        }
        return v.listaparalelo;
    }
    public List getListacoordinador() {
        v.listacoordinador.clear();
        try {
            v.crs4 = combocoordinador.getcombocoordinador();
            while (v.crs4.next()) {
                v.listacoordinador.add(new SelectItem(v.crs4.getString("pr_cedula"), v.crs4.getString("pr_nombres")));
            }
            v.crs4.close();
        } catch (SQLException ex) {
        }
        return v.listacoordinador;
    }
}
